using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class MainMenu_SectionManager : MonoBehaviour
{
	[SerializeField]
	private RectTransform[] OptionTransforms;

	[SerializeField]
	private Vector3[] OriginalOptionTransform;

	[SerializeField]
	private RectTransform[] UnselectableTransforms;

	[SerializeField]
	private Vector3[] OriginalUnselectableTransform;

	[SerializeField]
	private TextMeshProUGUI ControlsText;

	[SerializeField]
	private string ThisControlText;

	[SerializeField]
	private float lerpSpeed = 5f;

	[Header("Spacing for if SelectionMode is 1")]
	[SerializeField]
	private float OptionSpacing = 700f;

	public int cursorPos;

	private int secondarycursorPos;

	[Space(10f)]
	[SerializeField]
	private int SelectionMode;

	public int SelectionState = 1;

	[SerializeField]
	private int SelectionActionIndex;

	[Space(10f)]
	[SerializeField]
	private string HoverAnimationStateName;

	[SerializeField]
	private string UnHoverAnimationStateName;

	[SerializeField]
	private string SelectAnimationStateName;

	[Space(10f)]
	[SerializeField]
	private AudioSource SectionSource;

	[SerializeField]
	private AudioClip SwitchSectionClip;

	[SerializeField]
	private AudioClip ConfirmSectionClip;

	[SerializeField]
	private AudioClip DenySectionClip;

	[SerializeField]
	private AudioClip ReturnSectionClip;

	[SerializeField]
	private AudioClip EnterSectionClip;

	[Space(10f)]
	[SerializeField]
	private MainMenu_SectionManager[] OtherSections;

	[SerializeField]
	private MainMenu_SectionManager PreviousSection;

	[SerializeField]
	private ChatboxSimpleText GonerText;

	[SerializeField]
	private CHATBOXTEXT ChatboxText;

	[SerializeField]
	private bool RanText;

	[Header("Selection Index 1, Scene Transition")]
	[SerializeField]
	private int[] TargetSceneName;

	[SerializeField]
	private TRIG_LEVELTRANSITION transition;

	[Space(10f)]
	[Header("Selection Mode 1 Specific")]
	[SerializeField]
	private RectTransform CreditOptionTransform;

	[SerializeField]
	private Vector3 OriginalCreditOptionTransform;

	[SerializeField]
	private MainMenu_SectionManager CreditSection;

	[Space(10f)]
	[Header("Selection Mode 2 Specific")]
	[SerializeField]
	private Hypothesis[] Hypotheticals;

	[SerializeField]
	private MainMenu_ContextMenu ContextMenu;

	private void Start()
	{
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_001b: Unknown result type (might be due to invalid IL or missing references)
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0202: Unknown result type (might be due to invalid IL or missing references)
		//IL_0207: Unknown result type (might be due to invalid IL or missing references)
		//IL_0213: Unknown result type (might be due to invalid IL or missing references)
		//IL_0218: Unknown result type (might be due to invalid IL or missing references)
		//IL_0222: Unknown result type (might be due to invalid IL or missing references)
		//IL_0227: Unknown result type (might be due to invalid IL or missing references)
		for (int i = 0; i < OptionTransforms.Length; i++)
		{
			OriginalOptionTransform[i] = ((Transform)OptionTransforms[i]).localPosition;
			((Transform)OptionTransforms[i]).localPosition = OriginalOptionTransform[i] - Vector3.up * 700f;
			if (SelectionActionIndex != 1 || !((Object)(object)Hypotheticals[i] != (Object)null))
			{
				continue;
			}
			Hypothesis hypothesis = Hypotheticals[i];
			GameObject val = null;
			GameObject val2 = null;
			GameObject val3 = null;
			for (int j = 0; j < ((Transform)OptionTransforms[i]).childCount; j++)
			{
				if (((Object)((Transform)OptionTransforms[i]).GetChild(j)).name == "SectionIcon")
				{
					val = ((Component)((Transform)OptionTransforms[i]).GetChild(j)).gameObject;
				}
				if (((Object)((Transform)OptionTransforms[i]).GetChild(j)).name == "SectionName")
				{
					val2 = ((Component)((Transform)OptionTransforms[i]).GetChild(j)).gameObject;
				}
				if (((Object)((Transform)OptionTransforms[i]).GetChild(j)).name == "SectionDescription")
				{
					val3 = ((Component)((Transform)OptionTransforms[i]).GetChild(j)).gameObject;
				}
			}
			RawImage component = val.GetComponent<RawImage>();
			TextMeshProUGUI component2 = val2.GetComponent<TextMeshProUGUI>();
			TextMeshProUGUI component3 = val3.GetComponent<TextMeshProUGUI>();
			component.texture = (Texture)(object)hypothesis.HypothesisMenuSprite.texture;
			((TMP_Text)component2).text = hypothesis.HypothesisName;
			((TMP_Text)component3).text = hypothesis.HypothesisDescription;
		}
		for (int k = 0; k < UnselectableTransforms.Length; k++)
		{
			OriginalUnselectableTransform[k] = ((Transform)UnselectableTransforms[k]).localPosition;
			((Transform)UnselectableTransforms[k]).localPosition = OriginalUnselectableTransform[k] - Vector3.up * 700f;
		}
		if (SelectionMode == 1)
		{
			OriginalCreditOptionTransform = ((Transform)CreditOptionTransform).localPosition;
			((Transform)CreditOptionTransform).localPosition = OriginalCreditOptionTransform - Vector3.up * 700f;
		}
	}

	private void Update()
	{
		//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_011b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0175: Unknown result type (might be due to invalid IL or missing references)
		//IL_0210: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_0359: Unknown result type (might be due to invalid IL or missing references)
		if (SelectionState == 1)
		{
			if ((Object)(object)ChatboxText != (Object)null && (Object)(object)GonerText != (Object)null && !RanText)
			{
				RanText = true;
				GonerText.RunText(ChatboxText, 0);
				SectionSource.PlayOneShot(EnterSectionClip);
			}
			if (ThisControlText != "" && Object.op_Implicit((Object)(object)ControlsText) && ((TMP_Text)ControlsText).text != ThisControlText)
			{
				((TMP_Text)ControlsText).text = ThisControlText;
			}
			if (SelectionMode == 1)
			{
				ContextMenu.CloseContextMenu_PreventPreviousStateUpdate();
			}
			if (Input.GetKeyDown(PlayerInput.Instance.Key_Right))
			{
				if (secondarycursorPos == 0 && SelectionMode != 2)
				{
					cursorPos++;
					if (cursorPos >= OptionTransforms.Length)
					{
						cursorPos = 0;
					}
					SectionSource.PlayOneShot(SwitchSectionClip);
				}
			}
			else if (Input.GetKeyDown(PlayerInput.Instance.Key_Left) && secondarycursorPos == 0 && SelectionMode != 2)
			{
				cursorPos--;
				if (cursorPos < 0)
				{
					cursorPos = OptionTransforms.Length - 1;
				}
				SectionSource.PlayOneShot(SwitchSectionClip);
			}
			if (Input.GetKeyDown(PlayerInput.Instance.Key_Down))
			{
				if (SelectionMode == 1)
				{
					secondarycursorPos++;
					if (secondarycursorPos >= 2)
					{
						secondarycursorPos = 0;
					}
					if (secondarycursorPos < 0)
					{
						secondarycursorPos = 1;
					}
					SectionSource.PlayOneShot(SwitchSectionClip);
				}
				if (SelectionMode == 2)
				{
					cursorPos++;
					if (cursorPos >= OptionTransforms.Length)
					{
						cursorPos = 0;
					}
					SectionSource.PlayOneShot(SwitchSectionClip);
				}
			}
			if (Input.GetKeyDown(PlayerInput.Instance.Key_Up))
			{
				if (SelectionMode == 1)
				{
					secondarycursorPos--;
					if (secondarycursorPos >= 2)
					{
						secondarycursorPos = 0;
					}
					if (secondarycursorPos < 0)
					{
						secondarycursorPos = 1;
					}
					SectionSource.PlayOneShot(SwitchSectionClip);
				}
				if (SelectionMode == 2)
				{
					cursorPos--;
					if (cursorPos < 0)
					{
						cursorPos = OptionTransforms.Length - 1;
					}
					SectionSource.PlayOneShot(SwitchSectionClip);
				}
			}
			if (Input.GetKeyDown(PlayerInput.Instance.Key_Confirm))
			{
				if (SelectionMode != 2)
				{
					SectionSource.PlayOneShot(ConfirmSectionClip);
					SelectionState = 0;
					CompareSelectionAction();
				}
				if (secondarycursorPos == 0)
				{
					if (SelectionMode != 2 && Object.op_Implicit((Object)(object)((Component)OptionTransforms[cursorPos]).GetComponent<Animator>()))
					{
						((Component)OptionTransforms[cursorPos]).GetComponent<Animator>().Play(SelectAnimationStateName);
					}
				}
				else if (Object.op_Implicit((Object)(object)((Component)CreditOptionTransform).GetComponent<Animator>()))
				{
					((Component)CreditOptionTransform).GetComponent<Animator>().Play(SelectAnimationStateName);
				}
			}
			if (Input.GetKeyDown(PlayerInput.Instance.Key_Cancel) && SelectionState == 1)
			{
				ReturnToPrevious();
			}
			if (secondarycursorPos == 1 && cursorPos != 1)
			{
				cursorPos = 1;
			}
		}
		else
		{
			RanText = false;
		}
		LerpMenuOptions();
	}

	private void LerpMenuOptions()
	{
		//IL_0584: Unknown result type (might be due to invalid IL or missing references)
		//IL_0589: Unknown result type (might be due to invalid IL or missing references)
		//IL_0593: Unknown result type (might be due to invalid IL or missing references)
		//IL_0598: Unknown result type (might be due to invalid IL or missing references)
		//IL_059d: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_005c: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0603: Unknown result type (might be due to invalid IL or missing references)
		//IL_0608: Unknown result type (might be due to invalid IL or missing references)
		//IL_060d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0621: Unknown result type (might be due to invalid IL or missing references)
		//IL_0626: Unknown result type (might be due to invalid IL or missing references)
		//IL_0634: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0403: Unknown result type (might be due to invalid IL or missing references)
		//IL_0187: Unknown result type (might be due to invalid IL or missing references)
		//IL_018c: Unknown result type (might be due to invalid IL or missing references)
		//IL_018e: Unknown result type (might be due to invalid IL or missing references)
		//IL_006e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0080: Unknown result type (might be due to invalid IL or missing references)
		//IL_0085: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_065f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0664: Unknown result type (might be due to invalid IL or missing references)
		//IL_066e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0673: Unknown result type (might be due to invalid IL or missing references)
		//IL_0678: Unknown result type (might be due to invalid IL or missing references)
		//IL_0686: Unknown result type (might be due to invalid IL or missing references)
		//IL_068b: Unknown result type (might be due to invalid IL or missing references)
		//IL_069f: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01df: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0203: Unknown result type (might be due to invalid IL or missing references)
		//IL_0211: Unknown result type (might be due to invalid IL or missing references)
		//IL_0227: Unknown result type (might be due to invalid IL or missing references)
		//IL_022c: Unknown result type (might be due to invalid IL or missing references)
		//IL_023a: Unknown result type (might be due to invalid IL or missing references)
		//IL_024c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0251: Unknown result type (might be due to invalid IL or missing references)
		//IL_0254: Unknown result type (might be due to invalid IL or missing references)
		//IL_0259: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_0465: Unknown result type (might be due to invalid IL or missing references)
		//IL_046c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0457: Unknown result type (might be due to invalid IL or missing references)
		//IL_045e: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0471: Unknown result type (might be due to invalid IL or missing references)
		//IL_0485: Unknown result type (might be due to invalid IL or missing references)
		//IL_048a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0498: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0359: Unknown result type (might be due to invalid IL or missing references)
		//IL_035e: Unknown result type (might be due to invalid IL or missing references)
		//IL_036c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0382: Unknown result type (might be due to invalid IL or missing references)
		//IL_0387: Unknown result type (might be due to invalid IL or missing references)
		//IL_0395: Unknown result type (might be due to invalid IL or missing references)
		if (SelectionState == 1)
		{
			if (SelectionMode == 0)
			{
				float num = 0.65f;
				float num2 = 1f;
				Vector3 val = default(Vector3);
				for (int i = 0; i < OptionTransforms.Length; i++)
				{
					float num3 = (float)(i - cursorPos) * OptionSpacing;
					((Vector3)(ref val))._002Ector(num3, 0f, 0f);
					Vector3 val2 = ((cursorPos == i) ? (Vector3.one * num2) : (Vector3.one * num));
					((Transform)OptionTransforms[i]).localScale = Vector3.Lerp(((Transform)OptionTransforms[i]).localScale, val2, lerpSpeed * Time.deltaTime);
					((Transform)OptionTransforms[i]).localPosition = Vector3.Lerp(((Transform)OptionTransforms[i]).localPosition, val, lerpSpeed * Time.deltaTime);
					if (cursorPos == i)
					{
						((Transform)OptionTransforms[i]).SetAsLastSibling();
						if (Object.op_Implicit((Object)(object)((Component)OptionTransforms[i]).GetComponent<Animator>()))
						{
							((Component)OptionTransforms[i]).GetComponent<Animator>().Play(HoverAnimationStateName);
						}
					}
					else
					{
						((Transform)OptionTransforms[i]).SetAsFirstSibling();
						if (Object.op_Implicit((Object)(object)((Component)OptionTransforms[i]).GetComponent<Animator>()))
						{
							((Component)OptionTransforms[i]).GetComponent<Animator>().Play(UnHoverAnimationStateName);
						}
					}
				}
			}
			if (SelectionMode == 1)
			{
				float num4 = 0.65f;
				float num5 = 0.7f;
				if (SelectionState == 1)
				{
					for (int j = 0; j < OptionTransforms.Length; j++)
					{
						Vector3 one = Vector3.one;
						_ = Vector3.one;
						if (secondarycursorPos == 0)
						{
							one = ((cursorPos == j) ? (Vector3.one * num5) : (Vector3.one * num4));
							_ = Vector3.one * num5;
						}
						else
						{
							one = Vector3.one * num4;
							_ = Vector3.one * num5;
						}
						((Transform)OptionTransforms[j]).localScale = Vector3.Lerp(((Transform)OptionTransforms[j]).localScale, one, lerpSpeed * Time.deltaTime);
						((Transform)CreditOptionTransform).localScale = Vector3.Lerp(((Transform)CreditOptionTransform).localScale, one, lerpSpeed * Time.deltaTime);
						Vector3 val3 = OriginalOptionTransform[j];
						Vector3 originalCreditOptionTransform = OriginalCreditOptionTransform;
						if (cursorPos == j && secondarycursorPos == 0)
						{
							((Transform)OptionTransforms[j]).SetAsLastSibling();
							if (Object.op_Implicit((Object)(object)((Component)OptionTransforms[j]).GetComponent<Animator>()))
							{
								((Component)OptionTransforms[j]).GetComponent<Animator>().Play(HoverAnimationStateName);
							}
						}
						else
						{
							if (Object.op_Implicit((Object)(object)((Component)OptionTransforms[j]).GetComponent<Animator>()))
							{
								((Component)OptionTransforms[j]).GetComponent<Animator>().Play(UnHoverAnimationStateName);
							}
							((Transform)OptionTransforms[j]).SetAsFirstSibling();
						}
						if (secondarycursorPos == 0)
						{
							if (Object.op_Implicit((Object)(object)((Component)OptionTransforms[j]).GetComponent<Animator>()))
							{
								((Component)CreditOptionTransform).GetComponent<Animator>().Play(UnHoverAnimationStateName);
							}
						}
						else if (Object.op_Implicit((Object)(object)((Component)OptionTransforms[j]).GetComponent<Animator>()))
						{
							((Component)CreditOptionTransform).GetComponent<Animator>().Play(HoverAnimationStateName);
						}
						((Transform)OptionTransforms[j]).localPosition = Vector3.Lerp(((Transform)OptionTransforms[j]).localPosition, val3, lerpSpeed * Time.deltaTime);
						((Transform)CreditOptionTransform).localPosition = Vector3.Lerp(((Transform)CreditOptionTransform).localPosition, originalCreditOptionTransform, lerpSpeed * Time.deltaTime);
					}
				}
			}
			if (SelectionMode == 2)
			{
				float num6 = 0.65f;
				float num7 = 1f;
				for (int k = 0; k < UnselectableTransforms.Length; k++)
				{
					((Transform)UnselectableTransforms[k]).localPosition = Vector3.Lerp(((Transform)UnselectableTransforms[k]).localPosition, OriginalUnselectableTransform[k], lerpSpeed * Time.deltaTime);
				}
				Vector3 val4 = default(Vector3);
				for (int l = 0; l < OptionTransforms.Length; l++)
				{
					float num8 = (float)(l - cursorPos) * OptionSpacing;
					((Vector3)(ref val4))._002Ector(-323.05f, num8, 0f);
					Vector3 val5 = ((cursorPos == l) ? (Vector3.one * num7) : (Vector3.one * num6));
					((Transform)OptionTransforms[l]).localScale = Vector3.Lerp(((Transform)OptionTransforms[l]).localScale, val5, lerpSpeed * Time.deltaTime);
					((Transform)OptionTransforms[l]).localPosition = Vector3.Lerp(((Transform)OptionTransforms[l]).localPosition, val4, lerpSpeed * Time.deltaTime);
					if (cursorPos == l)
					{
						((Transform)OptionTransforms[l]).SetAsLastSibling();
						if (Object.op_Implicit((Object)(object)((Component)OptionTransforms[l]).GetComponent<Animator>()))
						{
							((Component)OptionTransforms[l]).GetComponent<Animator>().Play(HoverAnimationStateName);
						}
					}
					else
					{
						((Transform)OptionTransforms[l]).SetAsFirstSibling();
						if (Object.op_Implicit((Object)(object)((Component)OptionTransforms[l]).GetComponent<Animator>()))
						{
							((Component)OptionTransforms[l]).GetComponent<Animator>().Play(UnHoverAnimationStateName);
						}
					}
				}
			}
		}
		if (SelectionState == 2)
		{
			for (int m = 0; m < OptionTransforms.Length; m++)
			{
				Vector3 val6 = ((Transform)OptionTransforms[m]).localPosition - Vector3.up * 960f;
				((Transform)OptionTransforms[m]).localPosition = Vector3.Lerp(((Transform)OptionTransforms[m]).localPosition, val6, lerpSpeed * Time.deltaTime / 4f);
			}
			for (int n = 0; n < UnselectableTransforms.Length; n++)
			{
				Vector3 val7 = ((Transform)UnselectableTransforms[n]).localPosition - Vector3.up * 960f;
				((Transform)UnselectableTransforms[n]).localPosition = Vector3.Lerp(((Transform)UnselectableTransforms[n]).localPosition, val7, lerpSpeed * Time.deltaTime);
			}
			if (SelectionMode == 1)
			{
				Vector3 val8 = ((Transform)CreditOptionTransform).localPosition - Vector3.up * 960f;
				((Transform)CreditOptionTransform).localPosition = Vector3.Lerp(((Transform)CreditOptionTransform).localPosition, val8, lerpSpeed * Time.deltaTime / 4f);
			}
		}
	}

	private void CompareSelectionAction()
	{
		switch (SelectionActionIndex)
		{
		case 0:
			if (secondarycursorPos == 0)
			{
				((MonoBehaviour)this).StartCoroutine(DelayUntilTransition());
			}
			else
			{
				((MonoBehaviour)this).StartCoroutine(ShowCredits());
			}
			break;
		case 1:
			SelectionState = 2;
			ContextMenu.OpenContextMenu(Hypotheticals[cursorPos], this);
			break;
		}
	}

	private void ReturnToPrevious()
	{
		if ((Object)(object)PreviousSection != (Object)null)
		{
			SelectionState = 2;
			SectionSource.PlayOneShot(ReturnSectionClip);
			PreviousSection.SelectionState = 1;
		}
	}

	private IEnumerator DelayUntilTransition()
	{
		yield return (object)new WaitForSeconds(1f);
		if ((Object)(object)OtherSections[cursorPos] != (Object)null)
		{
			SelectionState = 2;
			OtherSections[cursorPos].SelectionState = 1;
			OtherSections[cursorPos].PreviousSection = this;
		}
		else
		{
			SelectionState = 1;
		}
	}

	private IEnumerator ShowCredits()
	{
		yield return (object)new WaitForSeconds(1f);
		SelectionState = 2;
		CreditSection.SelectionState = 1;
		CreditSection.PreviousSection = this;
	}
}
